﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Generico.Coneccion;

namespace Administracion.Administracion
{
    public partial class Bancos : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!this.IsPostBack)
            {
                CargarLista();
                if (lstInfo.Items.Count >= 1)
                {
                    this.lstInfo.SelectedIndex = 0;
                    cargardatos(Convert.ToInt32(lstInfo.SelectedValue));
                }
                Habilitar(true);
            }
        }



        protected void lstInfo_SelectedIndexChanged1(object sender, EventArgs e)
        {
            if (lstInfo.SelectedValue != String.Empty)
            {
                cargardatos(Convert.ToInt32(lstInfo.SelectedValue));
            }
            
        }
        private void cargardatos(int valor)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("idBanco", valor);
            var rd = cn.EjecutarSpDataReader("sp_ADM_GetBanco");
            while (rd.Read())
            {
                txtId.Text = rd["idBanco"].ToString();
                txtBanco.Text = rd["varBanco"].ToString();
                txtSucursal.Text = rd["varSucursal"].ToString();
                txtLink.Text = rd["varPagina"].ToString();
                txtOrden.Text = Convert.IsDBNull(rd["intOrden"]) ? "0" : rd["intOrden"].ToString();
                chkVisibilidad.Checked = Convert.IsDBNull(rd["Inactivo"]) ? false : Convert.ToBoolean(rd["Inactivo"]);
            }
            rd.Close();
            cn.Cerrar();
        }

        protected void Button3_Click(object sender, EventArgs e)
        {

        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            Limpiar();
            Visualizar(true);
            Habilitar(false);
            this.Session.Add("Transaccion", "A");
        }
        private void Limpiar()
        {
            txtId.Text = "";
            txtBanco.Text = "";
            txtSucursal.Text = "";
            txtLink.Text = "";
        }
        private void Visualizar(bool visible)
        {
            btnAceptar.Visible = visible;
            btnCancelar.Visible = visible;
        }
        private void Habilitar(bool habilitado)
        {
            btnModificar.Enabled = habilitado;
            btnAgregar.Enabled = habilitado;
            btnEliminar.Enabled = habilitado;
            txtBanco.Enabled = !habilitado;
            txtSucursal.Enabled = !habilitado;
            txtLink.Enabled = !habilitado;
            txtOrden.Enabled =!habilitado;
            chkVisibilidad.Enabled = !habilitado;
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            Visualizar(true);
            Habilitar(false);
            this.Session.Add("Transaccion", "M");
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            string varTransaccion = Session["Transaccion"].ToString();
            
            if( ( fileLoad.PostedFile != null ) && ( fileLoad.PostedFile.ContentLength > 0 ) ) 
            { 
                string fn = System.IO.Path.GetFileName(fileLoad.PostedFile.FileName);
                string SaveLocation = Server.MapPath("Logos") + "\\" +  fn; 
                try { 
                    fileLoad.PostedFile.SaveAs(SaveLocation); 
                    } 
                catch ( Exception ex ) 
                { Response.Write("Error: " + ex.Message);
                } 
            }
            else
            {
                Response.Write("Seleccione un archivo que cargar."); 
            } 
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.AgregarParametros("varBanco", txtBanco.Text);
            cn.AgregarParametros("varSucursal", txtSucursal.Text);
            cn.AgregarParametros("varLogo", System.IO.Path.GetFileName(fileLoad.PostedFile.FileName));
            cn.AgregarParametros("varPagina", txtLink.Text);
            if (varTransaccion == "A")
            {
                cn.AgregarParametros("intOrden", Convert.ToInt32(txtOrden.Text));
           
                cn.EjecutarSp("sp_ADM_NewBanco");
                CargarLista();
            }

            if (varTransaccion == "M")
            {
                cn.AgregarParametros("idBanco", txtId.Text);
                cn.AgregarParametros("intOrden", Convert.ToInt32(txtOrden.Text));
                cn.AgregarParametros("inactivo", Convert.ToInt16(chkVisibilidad.Checked));
                cn.EjecutarSp("sp_ADM_UpdateBanco");
            }
            cn.Cerrar();
            Response.Write("<script> alert('Se ha guardado correctamente');</script>");
            Visualizar(false);
            Habilitar(true);
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {

            Limpiar();
            Visualizar(false);
            Habilitar(true);
        }

        private void CargarLista()
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            var rd = cn.EjecutarSpDataReader("sp_ADM_GetBancos");
            var dt = new DataTable();
            dt.Load(rd);
            this.lstInfo.DataSource = dt;
            this.lstInfo.DataTextField = "varBanco";
            this.lstInfo.DataValueField = "idBanco";
            this.lstInfo.DataBind();
            cn.Cerrar();
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            var cn = new ClsConeccion();
            cn.Abrir();
            cn.EjecutarSql("Delete Bancos where idBanco = " + txtId.Text);
            cn.Cerrar();
            Response.Write("<script> alert('Se ha elimando correctamente');</script>");
            CargarLista();
        }
    }
}
